package alipay.openplatform.edu.campus.jiuye.service.iservice.topic;

import alipay.openplatform.edu.campus.jiuye.common.page.Page;
import alipay.openplatform.edu.campus.jiuye.model.po.TopicInfoPO;
import alipay.openplatform.edu.campus.jiuye.model.vo.CityVO;
import alipay.openplatform.edu.campus.jiuye.model.vo.ImgUrlVO;
import alipay.openplatform.edu.campus.jiuye.model.vo.SchoolVO;
import alipay.openplatform.edu.campus.jiuye.model.vo.TopicInfoVO;

import java.util.Date;
import java.util.List;

public interface ITopicInfoService {
    int deleteByPrimaryKey(Integer topicId);

    int insert(TopicInfoPO record);

    int insertSelective(TopicInfoPO record);

    TopicInfoPO selectByPrimaryKey(Integer topicId);

    int updateByPrimaryKeySelective(TopicInfoPO record);

    int updateByPrimaryKey(TopicInfoPO record);

    /**
     * @param page
     */
    Page<Object> selectTopicInfoPOByTitleAndStatus(Page page);

    /**
     * 添加主題
     * @param createmanId 操作人
     * @param topicInfoVO 专题对象
     */
    void addTopic(Integer createmanId,TopicInfoVO topicInfoVO);

    /**
     * 修改主題
     * @param topicInfoVO 专题对象
     */
    void updateTopic(TopicInfoVO topicInfoVO);


    /**
     * 根据城市id查询对应专题
     *
     * @param page 分页查询参数,cityId 城市id  pageNo当前页号,pageSize分页大小
     * @return
     */
    Page<Object> getTopicInfoByLocation(Page page);

    /**
     * 根据城市id和专题类别查询
     *
     * @param page topicType  类型0 招聘会 1 校园专题 2公务员  cityId 城市id  pageNo当前页号,pageSize分页大小
     * @return
     */
    Page<Object> getTopicInfoList(Page page);

    /**
     * 根据城市名称 学校名称 专题名称搜索
     *
     * @param page condition 搜索条件pageNo当前页号,pageSize分页大小
     * @return
     */
    Page<Object> searchTopic(Page page);

    /**
     * 更新TopicInfo状态
     * @param topicId 专题id
     */
    void updateTopicState(Integer topicId);

    /**
     * 根据 topicId 删除专题
     * @param topicId 专题id
     * @return
     */
    Integer removeTopicByTopicId(Integer topicId);

    /**
     *  方法removeTopicByTopicIdAndIfDel的功能描述:根据TopicId修改状态
     *  方法改动记录:
     *
     *  @params : [topicId]
     *  @return  java.lang.Integer
     *  @throw
     *  @version :  V1.0.0
     *  @since   :  17/2/13 上午10:48
     *  AUTHOR   :  gongzhijie
     **/
    Integer removeTopicByTopicIdAndIfDel(Integer topicId);

    /**
     * 置顶/取消置顶
     * @param topicId  专题id
     * @param topState 目标置顶状态
     */
    void topOrUnTopTopic(Integer topicId, Integer topState);

}